/**
 * PM2 进程管理配置文件
 * 用于管理后端 Node.js 应用
 */

module.exports = {
  apps: [{
    name: 'janes-backend',
    script: './src/index.js',
    
    // 进程数量（cluster 模式）
    instances: 1,
    exec_mode: 'cluster',
    
    // 监听文件变化（生产环境建议关闭）
    watch: false,
    
    // 内存限制，超过后自动重启
    max_memory_restart: '500M',
    
    // 环境变量
    env: {
      NODE_ENV: 'production'
    },
    
    // 日志配置
    error_file: './logs/err.log',
    out_file: './logs/out.log',
    log_date_format: 'YYYY-MM-DD HH:mm:ss',
    merge_logs: true,
    
    // 自动重启配置
    autorestart: true,
    max_restarts: 10,
    min_uptime: '10s',
    
    // 延迟重启（避免频繁重启）
    restart_delay: 4000,
    
    // 优雅关闭
    kill_timeout: 5000,
    listen_timeout: 3000,
    
    // 其他配置
    cron_restart: '0 2 * * *', // 每天凌晨2点自动重启（可选）
  }]
};

